<template>
	<view class="content">
		<view class="camera" @tap="toCamera">
			<image src="../../static/add.png" mode=""></image>
		</view>

		<view class="container">
			<view class="title">推荐衣服</view>
			<view class="pic_list">
				<view class="pic_list_item" v-for="(item,index) in imgUrlArr" :key="index">
					<image :src=" baseUrl + item.mimgUrl " mode="widthFix"></image>
				</view>
			</view>
		</view>

	</view>
</template>

<script>
	//提升this的作用域
	var _this
	export default {
		data() {
			return {
				baseUrl: '',
				imgUrl: '',
				imgUrlArr: [],
				userId: ''
			}
		},
		onLoad() {
			_this = this;
			_this.baseUrl = this.$api.SERVER_BASE;
			this.showUserImg();
			this.getUserId();
		},
		methods: {

			//异步获取存储在本地的用户id
			getUserId() {
				this.userId = uni.getStorageSync('user_id');
			},

			//分页查询用户图片
			showUserImg() {
				this.$post(this.$api.POST_PAGINATION_QUERY_USER_IMG, {
					current: '1',
					id: '666666',
					size: '6'
				}).then(res => {
					//请求图片成功，返回的数据
					//console.log(res.content.records)
					if (res.succeed) {
						this.imgUrlArr = res.content.records;
					} else {
						//接口请求失败
						uni.showToast({
							title: '接口请求失败',
							icon: 'error'
						})
					}
				}).catch(e => {
					//请求图片异常
					uni.showToast({
						title: '请求图片异常',
						icon: 'error'
					})
				})
			},

			//上传图片
			toCamera() {
				uni.chooseImage({
					count: 6,
					sizeType: ['original', 'compressed'],
					sourceType: ['camera', 'album'],
					success: (res) => {
						//预览图片
						uni.previewImage({
							//图片路径的数组
							urls: res.tempFilePaths,
							//长按图片触发的事件
							longPressActions: {
								itemList: ['上传图片'],
								//成功的回调
								success(data) {
									//上传图片
									uni.uploadFile({
										//请求接口
										url: _this.$api.POST_UPLOAD_IMG,
										//请求头允许跨域
										header: {
											'Access-Control-Allow-Origin': '*'
										},
										//图片路径
										filePath: res.tempFilePaths[data.index],
										//文件对应的key
										name: 'file',
										//http请求中其他额外的 form data
										formData: {
											id: _this.userId,
											mImgDescribe: _this.userId,
											mTypeDescribe: _this.userId,
											mTypeName: _this.userId,
										},
										//上传图片成功的回调
										success: (res) => {
											if (JSON.parse(res.data).succeed) {
												// 服务器返回的是一个JSON字符串，要先把它转化为对象
												//_this.imgUrl = JSON.parse(res.data).content;
												//向数组中添加元素
												//_this.imgUrlArr.push({mimgUrl: JSON.parse(res.data).content})
												_this.imgUrlArr.unshift({
													mimgUrl: JSON.parse(res.data)
														.content
												})
												uni.closePreviewImage({
													success() {
														uni.showToast({
															title: '上传成功',
															icon: 'success'
														})
													}
												})
											} else {
												uni.closePreviewImage({
													success() {
														uni.showToast({
															title: '上传失败',
															icon: 'error'
														})
													}
												})
											}
										},
										//上传图片失败的回调
										fail() {
											uni.showToast({
												title: '上传失败',
												icon: 'error'
											})
										}
									})
								}
							}
						})
					}
				})
			},

			showActionSheet() {
				//从下往上弹出选择按钮
				uni.showActionSheet({
					itemList: ['上传图片', '发送给朋友', '保存图片', '收藏'],
					//选中其中一个成功的回调
					success(res) {
						//弹出土司提醒
						uni.showToast({
							title: '成功',
							icon: 'success'
						})
					},
					//选中其中一次失败的回调
					fail(res) {
						//弹出土司提醒
						uni.showToast({
							title: '失败',
							icon: 'error'
						})
					}
				})
			}

		}
	}
</script>

<style scoped lang="scss">
	.content {
		width: 750rpx;

		.camera {
			padding: 10rpx;
			width: 300rpx;
			height: 300rpx;
			margin: 30px auto;
			background-color: #afd4e4;
			text-align: center;
			line-height: 300rpx;
			// box-shadow: 0px 0px 60px #007AFF;
			border-radius: 30%;
			display: flex;
			justify-content: center;
			align-items: center;

			image {
				width: 200rpx;
				height: 200rpx;
			}
		}

		.container {
			width: 100%;
			position: absolute;
			padding-bottom: 200px;

			.title {
				height: 50px;
				line-height: 50px;
				text-align: center;
				letter-spacing: 20px;
				margin: 7rpx 0;
				color: #ff6f0f;
				background-color: #c9dde7;
			}

			.pic_list {
				column-count: 2;
				column-gap: 3rpx;
				width: 100%;

				.pic_list_item {
					break-inside: avoid;
					border-radius: 10rpx;
					background: #FFFFFF;
					padding: 10rpx;
					border-radius: 3rpx;
					width: 100%;
					height: auto;
					margin: 10rpx 0;
					box-sizing: border-box;

					image {
						border-radius: 10rpx;
						width: 100%;
					}
				}
			}
		}
	}
</style>
